package io.adrainty.algorithm.mars;

/**
 * 最少前缀操作问题
 * @link <a href="https://www.marscode.cn/practice/364l85wv6oo6lq?problem_id=7424418560931168300">...</a>
 * @author adrainty
 * @version v1.0.0
 * @since 2024/11/25 上午9:10
 */
public class Solution015 {

    private Solution015() {}

    /**
     * @param S 源字符串
     * @param T 目标字符串
     * @return 最少需要多少次操作才能让S变成T的前缀
     */
    public static int solution(String S, String T) {
        // write code here
        // 已经是前缀了就直接返回0
        int ans = 0;
        int i = 0;
        int j = 0;
        while (i < S.length() && j < T.length()) {
            // 如果字符相同，两个指针都向前移动
            if (S.charAt(i) != T.charAt(j)) {
                ans++;
            }
            i++;
            j++;
        }
        // 删除多余的字符
        if (i < S.length()) ans += S.length() - i;
        return ans;
    }

}
